#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 100;
int t,n,x,y;
long long sum;
int p[N][2];
int main() {
    cin >> t;
    while(t--) {
        memset(p, 0, sizeof p);
        // cin >> n;
        scanf("%d",&n);
        sum = 0;
        int X = 0;
        for(int i=1;i<=n;i++) {
            // cin >> x >> y;
            scanf("%d%d",&x,&y);
            X= max(X,x);
            p[x][y] = 1;
        }
        //一条竖线能形成的直角三角形
        for(int i=0;i<=X;i++) {
            if(p[i][0] == 1 && p[i][1]==1) sum += n-2;
            if(i<1) continue;
            //以每个顶点为直角的直角三角形
            if(p[i][0] == 1) {
                if(p[i-1][1]==1 && p[i+1][1] == 1) ++sum;
            } 
            if(p[i][1] == 1) {
                if(p[i-1][0]==1 && p[i+1][0] == 1) ++sum;
            }
        }
        // cout << sum << endl;
        printf("%lld\n", sum);
    }
    return 0;
}